Most computer systems include numerous application components that interact with each other, from shared data to shared modules. Therefore, when designing new components and/or revised existing components to be introduced into a system, it can be very difficult to understand the integral relationships that either already or will exist between the many components, which makes detecting design anomalies a complex task. Such detection requires analyzing the to-be-introduced components to detect any anomalies within the components themselves, analyzing the relationships between the to-be-introduced components to detect any anomalies between them, and then analyzing the relationships between the to-be-introduced components and the unrevised existing components to detect any anomalies between them.
Traditionally, developers have relied on design reviews and/or runtime behavior monitoring to detect anomalies in the design of the to-be-introduced components. However, because of the detection complexity required, these techniques may not be enough to catch all anomalies. Moreover, these techniques may be time-consuming and prohibitively expensive. In which case, developers are forced to introduce new or revised components based on incomplete design analysis. Such is inefficient and ineffective.
This problem is compounded by the introduction of increasingly complex application components. For such components, anomaly detection becomes even more difficult. Such is the case with a new entity called a process object.
A process object is a new object in a computer system that describes the structure and behavior of a business process. As such, the process object may include data, logic, and structures. The process object may include data and routines to manipulate the data, as in object-oriented objects, and structures, e.g., database tables, to describe the relationships (or associations) with other process objects, as in relational database objects. In an SAP system, these process objects are the core structuring components that encapsulate the functionalities applications need to implement business processes. Each process object advantageously provides a discrete representation of the structure and behavior of a business process. An SAP application to implement a business process may then advantageously access the appropriate process objects and their data, without having to know the details of the underlying implementation.
Unlike traditional objects, the new process object encapsulates the business process' functionality within the object itself (and, in some cases, in other entities referenced by the object), defines relationships between different components and process objects, and provides the basic building block for applications. Whereas the traditional object defines, rather than encapsulates, functionality at a high level by referring to the business modules that provided the functionality, where the business modules are the basic building blocks for applications, and does not include structural information about the object's relationships. In the SAP system, in many cases, the new process object has superseded the traditional object.
Since process objects are the core structuring components in an SAP system, the process objects should be designed to operate correctly. Because a process object describes both internal relationships between its components and external relationships with other process objects' components, introduction of new process objects and/or modification of existing process objects in a system may lead to unexpected consequences. Therefore, it is important to analyze the design of the process objects and all their relationships, prior to introduction, to avoid such consequences.
However, known object-oriented analyses of process objects to detect anomalies may not be sufficient because they focus on the object-oriented aspects of the process objects, but not the process objects' relationships. Similarly, known relational database analyses may not be sufficient because they focus on the relational database aspects of the process objects, but not the process objects' data and routines.
Accordingly, there is a need in the art for an effective and efficient way to automatically detect anomalies in the design of these process objects to be corrected.